#pragma once

#include "AnimationMode.h"
#include "AnimationWay.h"

class IndexAnimation
{
private:
	//Fields
	int _Index;
	int _IndexMin;
	int _IndexMax;
	int _TickInterval;
	AnimationMode _Mode;
	int _Tick;
	AnimationWay _Way;
	int _Play;
	int _FirstFlip;

public:
	//Initialization
	IndexAnimation();
	IndexAnimation(int pIndexMin, int pIndexMax, AnimationMode pMode, int pTickInterval = 0, AnimationWay pWay = Forward);
	~IndexAnimation(void);

	//Properties
	int Index() { return _Index; }
	void SetIndexMin(int value) { _IndexMin = value; }
	void SetIndexMax(int value) { _IndexMax = value; }
	void SetTickInterval(int value) { _TickInterval = value; }
	void SetMode(AnimationMode value) { _Mode = value; }
	void SetWay(AnimationWay value) { _Way = value; }
	void Create(int pIndexMin, int pIndexMax, AnimationMode pMode, int pTickInterval = 0, AnimationWay pWay = Forward);

	//Methods
	void Play();
	void Stop();
	void Reset();
	void Tick();
};
